﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CurriculasController;
using CurriculasEntities;

namespace GestionCurriculosGlobal
{
    public partial class frmRegPlanCurricular : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                #region Inicializar
                int codPlanCurricular = 0;

                lblTitulo.Text = "Registrar Plan Curricular";
                txtVersion.Enabled = false;
                txtVersion.Text = "1";
                ListarCarreras();
                #endregion

                if (Request.QueryString["idPlanCurricular"] != null)
                {
                    codPlanCurricular = int.Parse(Request.QueryString["idPlanCurricular"]);
                    lblTitulo.Text = "Modificar Plan Curricular";
                    ObetenerPlanCurricular(codPlanCurricular);
                }
            }
        }

        private void ObetenerPlanCurricular(int codPlanCurricular)
        {
            PlanCurricularBL objBL = new PlanCurricularBL();
            PlanCurricularBE objBE = new PlanCurricularBE();

            objBE = objBL.Obtener(codPlanCurricular);

            txtNombre.Text = objBE.nombreplan;
            txtDescripcion.Text = objBE.disBase;
            txtVersion.Text = Convert.ToString(objBE.nroVersion + 1);
            cboCarrera.SelectedValue = objBE.codCarrera.ToString();
        }

        private void ListarCarreras()
        {
            List<CarreraBE> _lstCarreras = new CarreraBL().ListarTodos().Where(p=>p.estado == "1").ToList();
            cboCarrera.DataSource = _lstCarreras;
            cboCarrera.DataTextField = "nombre";
            cboCarrera.DataValueField = "codCarrera";
            cboCarrera.DataBind();
            cboCarrera.Items.Insert(0, "Seleccionar");
        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            PlanCurricularBL objBL = new PlanCurricularBL();
            PlanCurricularBE objBE = new PlanCurricularBE();

            if (txtNombre.Text.Trim() == "")
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction2", "alert('Ingrese datos en el campo Nombre de Plan Curricular.')", true);
            }
            else
            {
                try
                {
                    objBE.nombreplan = txtNombre.Text;
                    objBE.disBase = txtDescripcion.Text;
                    objBE.nroVersion = Convert.ToInt32(txtVersion.Text);
                    objBE.codCarrera = Convert.ToInt32(cboCarrera.SelectedValue);
                    objBE.fecha = DateTime.Now;
                    objBE.estado = "1";

                    try
                    {
                        if (Request.QueryString["idPlanCurricular"] != null)
                        {
                            objBE.codPlanCurricular = int.Parse(Request.QueryString["idPlanCurricular"]);
                            objBE = objBL.Modificar(objBE);

                            Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction2", "alert('Se modificó satisfactoriamente el plan curricular con código " + objBE.codPlanCurricular + "');window.location.assign('frmPlanCurricular.aspx');", true);
                        }
                        else
                        {
                            objBE.codPlanCurricular = objBL.Crear(objBE);

                            Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction2", "alert('Se registró satisfactoriamente el plan curricular con código " + objBE.codPlanCurricular + "');window.location.assign('frmPlanCurricular.aspx');", true);
                        }
                    }
                    catch (Exception ex)
                    { }
                }
                catch (Exception ex)
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction2", "alert('Ingrese los datos correctamente.');window.location.assign('frmPlanCurricular.aspx');", true);
                }
            }
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("frmPlanCurricular.aspx");
        }
    }
}